from st7735 import ST7735
from machine import Pin,SPI
import time
import ufont

spi=SPI(1, baudrate=20000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3))
display= ST7735 (spi,dc=Pin(6),cs=Pin(7),rst=Pin(10))
display.fill(0)

# 载入字体
font = ufont.BMFont("font.bmf")

'''
# 最简单的显示 "你好"
# 其中指定 `show=True` 使得屏幕及时更新
font.text(display, "你好", 0, 0, show=True)

# 如果想让文字显示在屏幕正中间，可以通过指定文本左上角位置来修改显示位置
font.text(display, "你好", 64, 32, show=True)

# 此时你会发现：上一次显示显示的文字不会消失。因为你没有指定清屏参数：`clear=True`;让我们再试一次
font.text(display, "你好", 64, 32, show=True, clear=True)

# 显示英文呢？
font.text(display, "He110", 64, 26, show=True, clear=True)
font.text(display, "你好", 64, 42, show=True)

# 会发现一个汉字的宽度大概是字母的两倍，如果你需要等宽，可以指定参数 `half_char=False`
font.text(display, "HELLO", 48, 24, show=True, clear=True, half_char=False)

# 可以通过指定参数 `color` 来指定字体颜色，其中 color 是 RGB565 格式
font.text(display, "hello", 48, 32, color=0xff00,clear=True, show=True)

# 同样，我们可以通过指定 `bg_color` 参数调整背景颜色
font.text(display, "你好", 56, 28, color=0xffffff, bg_color=0xff,clear=True, show=True)

# 大一点？可以使用 `font_size` 指定字号大小
# 注意：放大彩色字体对内存的要求十分巨大
font.text(display, "Temp: 15℃", 0, 26, font_size=32, color=0xff00, bg_color=0x00ff, show=True, clear=True)
'''

# 字模生成地址 https://www.zhetao.com/fontarray.html
# 16x16点阵字模（"福"字）
fu = bytearray([
    0x40, 0x00, 
    0x23, 0xfe, 
    0x20, 0x00, 
    0xf9, 0xfc, 
    0x11, 0x04, 
    0x11, 0x04, 
    0x21, 0xfc, 
    0x30, 0x00, 
    0x6b, 0xfe, 
    0xaa, 0x22, 
    0x22, 0x22, 
    0x23, 0xfe, 
    0x22, 0x22, 
    0x22, 0x22, 
    0x23, 0xfe, 
    0x22, 0x02
])

# ===== 图片数据示例 =====
folder_open = bytearray([
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x0f, 0xfc, 0x00, 0x00, 
    0x1f, 0xfe, 0x00, 0x00, 
    0x1f, 0xff, 0x00, 0x00, 
    0x1f, 0xff, 0xff, 0xe0, 
    0x1f, 0xff, 0xff, 0xf0, 
    0x1f, 0xff, 0xff, 0xf0, 
    0x18, 0x00, 0x00, 0x00, 
    0x18, 0x00, 0x00, 0x00, 
    0x18, 0xff, 0xff, 0xfe, 
    0x18, 0xff, 0xff, 0xfe, 
    0x18, 0xff, 0xff, 0xfc, 
    0x19, 0xff, 0xff, 0xfc, 
    0x19, 0xff, 0xff, 0xfc, 
    0x19, 0xff, 0xff, 0xfc, 
    0x19, 0xff, 0xff, 0xf8, 
    0x1b, 0xff, 0xff, 0xf8, 
    0x1b, 0xff, 0xff, 0xf8, 
    0x1f, 0xff, 0xff, 0xf0, 
    0x1f, 0xff, 0xff, 0xf0, 
    0x1f, 0xff, 0xff, 0xf0, 
    0x1f, 0xff, 0xff, 0xe0, 
    0x0f, 0xff, 0xff, 0xc0, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00
])

display.fill(0)
font.text(display, "中国智造惠及全球", 15, 1, color=0x05ff)
display.show_chinese(10, 33, fu, fg_color=0x05ff)
display.show_icon(30, 25, folder_open, fg_color=0x05ff)
display.text("ESP32-C3:", 10, 70, 0x05ff)
display.show()

n=0
while True:
    n+=1
    # 清除位置x,y,清除大小w,h，颜色
    display.fill_rect(82, 69, 70, 9,0xff05)
    display.text(str(n), 82, 70,0xffff)
    display.show()
